package 基础篇;

import java.util.Arrays;

/**
 * @author LiuShanshan
 * @version V1.0
 * @Description
 */
public class 插入排序自己 {
    public static void main(String[] args) {
        int[] array = {4,1,7,2,9,6,12,10};
        insert(array);
        for (int i : array) {
            System.out.println(i);
        }
    }

    // 第一层for循环，就从索引为1的地方开始，第二层是while，使用当前索引值和之前的数据相比，进行交换，然后再将索引值与更之前
    // 的数据进行比较，交换，最后将一开始的索引值赋值给最后 的索引所在位置
    // 注意，当比较的索引值没有之前的大， 那么当前索引值就应该在这个位置上
    public static void insert(int[] a) {
        for(int i =1;i<a.length; i++){
            int value = a[i];
            int vIndex = i;
            while (vIndex >=1){
                if(value < a[vIndex-1]){
                    a[vIndex] = a[vIndex-1];
                    vIndex--;
                }else{
                    break;
                }
            }
            if(vIndex != i){
                a[vIndex] =  value;
            }
        }

    }
}
